package com.weixing.mall.provider.model.domain;

import com.baomidou.mybatisplus.annotation.TableName;
import com.baomidou.mybatisplus.annotation.Version;
import com.weixing.mall.core.support.BaseEntity;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.experimental.Accessors;

import java.math.BigDecimal;
import java.util.Date;

/**
 * <p>
 * 订单模块-订单表
 * </p>
 *
 * @author Small
 * @since 2020-04-05
 */
@Data
@EqualsAndHashCode(callSuper = true)
@Accessors(chain = true)
@TableName("omc_order_print")
public class OrderPrint extends BaseEntity {

    private static final long serialVersionUID = 1L;

    /**
     * 主订单id
     */
    private Long parentId;

    private Long buyerId;

    private String buyer;

    /**
     * 购买人角色  1 会员  2  代理商  3  客服
     */
    private Integer buyerRole;

    /**
     * 订单编号
     */
    private String orderSn;

    /**
     * 订单金额
     */
    private BigDecimal orderPrice;

    /**
     * 实付金额
     */
    private BigDecimal actualPrice;

    /**
     * 物流单号
     */
    private String expressSn;

    /**
     * 是否已支付
     */
    private Integer isPay;

    /**
     * 发货前审核时间
     */
    private Date auditTime;

    /**
     * 发货时间
     */
    private Date shipTime;

    /**
     * 收货时间
     */
    private Date receiptTime;

    /**
     * 订单状态（1待付款;4已取消;7已付款/待审核;10,审核中;13;审核完成/待封单;16已封单;19待发货;22已发货;25已完成;28售后中）
     */
    private Integer orderStatus;

    /**
     * 用户看到的订单状态(1, "待付款"，2, "已取消"，3, "待发货"，4, "待收货"，5, "已完成"，6, "退款/售后"，7, "已删除" 0, "全部")
     */
    private Integer frontOrderStatus;

    /**
     * 订单审核状态（OrderAuditStateEnum 1代理商待审核;3代理商审核中；6代理商审核完成客服待审核；9客服审核完成；12客服审核拒绝）
     */
    private Integer auditStatus;

    /**
     * 订单商品状态（ProductStatusEnum 1待定；4待货；7有现货；10需外采；13内部换货；16断货）
     */
    private Integer itemStatus;

    /**
     * 所属代理商
     */
    private String agentName;

    /**
     * 代理商编号
     */
    private String agentSn;

    /**
     * 所属客服
     */
    private Long customerId;

    /**
     * 所属客服名称
     */
    private String customerName;

    /**
     * 所属发货员
     */
    private Long shipperId;

    /**
     * 所属发货员名称
     */
    private String shipperName;

    /**
     * 订单类型 正价订单；代理商活动订单；秒杀订单
     */
    private Integer orderType;

    /**
     * 下单来源 客服下单，代理商下单，客户下单
     */
    private Integer orderFrom;

    /**
     * 订单码是否已推送
     */
    private Integer isOrderSnPrint;

    /**
     * 商品码是否已推送
     */
    private Integer isGoodsSnPrint;

    /**
     * 所属仓库
     */
    private Long depotId;

    /**
     * 所属仓库名称
     */
    private String depotName;

    /**
     * 匹配规则
     */
    private Integer mateRule;

    /**
     * 订单流转部门
     */
    private Long deptId;

    /**
     * 客服备注
     */
    private String kefuRemark;

    /**
     * 客户备注
     */
    private String remark;

    /**
     * 活动id
     */
    private Long actId;

    /**
     * 活动昵称
     */
    private String actName;

    /**
     * 所属经销商Id
     */
    private Long distributorId;

    /**
     * 所属经销商
     */
    private String distributorName;

    /**
     * 代理商Id
     */
    private Long agentId;

    /**
     * 断货审核时间
     */
    private Date nosuppllyTime;

    /**
     * 断货审核状态
     */
    private Integer nosuppllyAudit;

    /**
     * 代理商认领时间轴
     */
    private String agentCliamLine;

    /**
     * 是否主订单
     */
    private Integer isMaster;

    /**
     * 是否对会员可见
     */
    private Integer isVisible;

    /**
     * 结算状态 1未结算；2发起结算；3已结算
     */
    private Integer settleState;

    /**
     * 需审核人
     */
    private Long auditor;

    /**
     * 订单审核流转部门
     */
    private Integer auditDept;

    /**
     * 是否是认领订单
     */
    private Integer isCliam;

    /**
     * 乐观锁
     */
    @Version
    private Integer revision;

    /**
     * 创建时间
     */
    private Date createdTime;

    /**
     * 更新人
     */
    private Long updatedBy;

    /**
     * 更新时间
     */
    private Date updatedTime;

    /**
     * 快递公司名称
     */
    private String expressName;


}
